﻿using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

/// <summary>
/// 事件发布者 接口
/// </summary>
public abstract class IGameEventSubject
{
    // 观察者列表
    private List<IGameEventObserver> mObservers = new List<IGameEventObserver>();

    // 添加 观察者
    public void RegisterObserver(IGameEventObserver ob)
    {
        mObservers.Add(ob);
    }
    
    // 移除观察者
    public void RemoveObserver(IGameEventObserver ob)
    {
        mObservers.Remove(ob);
    }
    
    // 发布消息
    public virtual void Notify()
    {
        foreach (IGameEventObserver ob in mObservers)
        {
            ob.Update();
        }
    }
}
